/*******************************************************************************
  * 文件：Hardware_IO.c
  * 作者：zyz
  * 版本：v1.0.0
  * 日期：2017-08-03
  * 说明：IO相关
*******************************************************************************/

/* 头文件 *********************************************************************/
#include "Hardware_IO.h"
#include "r_cg_macrodriver.h"

/* 宏定义 *********************************************************************/
/* 类型定义 *******************************************************************/
/* 变量定义 *******************************************************************/
/* 函数声明 *******************************************************************/
/* 函数定义 *******************************************************************/

/*******************************************************************************
  * 函数名：Hardware_InitIO
  * 功  能：初始化
  * 参  数：无
  * 返回值：无
  * 说  明：无
*******************************************************************************/
void Hardware_InitIO(void)
{

}

/*******************************************************************************
  * 函数名：Hardware_ToggleHeartbeatLed
  * 功  能：切换心跳指示灯
  * 参  数：无
  * 返回值：无
  * 说  明：无
*******************************************************************************/
void Hardware_ToggleHeartbeatLed(void)
{
    P4_bit.no1 = !P4_bit.no1;
}

/*******************************************************************************
  * 函数名：Hardware_NTCPullDownResisSwitch
  * 功  能：切换NTC下拉电阻阻值
  * 参  数：Bool bState：P0.1输出电平
  * 返回值：无
  * 说  明：P0.1输出0，R66与R67等效并联，下拉阻值为427.24欧；
  *        P0.1输出1，R66断路，下拉阻值为R67=4.7K
*******************************************************************************/
void Hardware_NTCPullDownResisSwitch(Bool bState)
{
    if(bState)
    {
        P0_bit.no1 = 1;   
    }
    else
    {
        P0_bit.no1 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_SRFYCtrl
  * 功  能：瞬燃IO控制
  * 参  数：无
  * 返回值：无
  * 说  明：上电默认置高，点火时，低电平开启瞬燃。点火结束后置高
*******************************************************************************/
void Hardware_SRFYCtrl(Bool bState)
{
  	if(bState)
    {
        P1_bit.no7 = 1;
    }
    else
    {
        P1_bit.no7 = 0;
    }
}
/*******************************************************************************
  * 函数名：Hardware_LeftStoveIgnite
  * 功  能：左灶点火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平点火
*******************************************************************************/
void Hardware_LeftStoveIgnite(Bool bState)
{
    if(bState)
    {
        P7_bit.no2 = 1;
    }
    else
    {
        P7_bit.no2 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveIgnite
  * 功  能：中灶点火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平点火
*******************************************************************************/
void Hardware_MidStoveIgnite(Bool bState)
{
    if(bState)
    {
        P7_bit.no3 = 1;
    }
    else
    {
        P7_bit.no3 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveIgnite
  * 功  能：右灶点火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平点火
*******************************************************************************/
void Hardware_RightStoveIgnite(Bool bState)
{
    if(bState)
    {
        P3_bit.no1 = 1;
    }
    else
    {
        P3_bit.no1 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_LeftStoveFlameout
  * 功  能：左灶关火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平关火
*******************************************************************************/
void Hardware_LeftStoveFlameout(Bool bState)
{
    if(bState)
    {
        P1_bit.no6 = 1;
    }
    else
    {
        P1_bit.no6 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveFlameOut
  * 功  能：中灶关火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平关火
*******************************************************************************/
void Hardware_MidStoveFlameOut(Bool bState)
{
    if(bState)
    {
        P5_bit.no1 = 1;
    }
    else
    {
        P5_bit.no1 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveFlameOut
  * 功  能：右灶关火
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平关火
*******************************************************************************/
void Hardware_RightStoveFlameOut(Bool bState)
{
    if(bState)
    {
        P5_bit.no0 = 1;
    }
    else
    {
        P5_bit.no0 = 0;
    }    
}

/*******************************************************************************
  * 函数名：Hardware_LeftStoveDrawValve
  * 功  能：左灶吸阀
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平吸阀
*******************************************************************************/
void Hardware_LeftStoveDrawValve(Bool bState)
{
    if(bState)
    {
        P3_bit.no0 = 1;
    }
    else
    {
        P3_bit.no0 = 0;
    }    
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveDrawValve
  * 功  能：中灶吸阀
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平吸阀
*******************************************************************************/
void Hardware_MidStoveDrawValve(Bool bState)
{
    if(bState)
    {
        P7_bit.no0 = 1;
    }
    else
    {
        P7_bit.no0 = 0;
    }    
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveDrawValve
  * 功  能：右灶吸阀
  * 参  数：Bool bState：1输出高电平 0输出低电平
  * 返回值：无
  * 说  明：高电平吸阀
*******************************************************************************/
void Hardware_RightStoveDrawValve(Bool bState)
{
    if(bState)
    {
        P7_bit.no1 = 1;
    }
    else
    {
        P7_bit.no1 = 0;
    }
}

/*******************************************************************************
  * 函数名：Hardware_LeftStoveErrorCheck
  * 功  能：左灶故障检测
  * 参  数：无
  * 返回值：1：故障         0：正常
  * 说  明：高电平故障
*******************************************************************************/
Bool Hardware_LeftStoveFXQCheck(void)
{
    return P12_bit.no1;
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveErrorCheck
  * 功  能：中灶故障检测
  * 参  数：无
  * 返回值：1：故障         0：正常
  * 说  明：高电平故障
*******************************************************************************/
Bool Hardware_MidStoveFXQCheck(void)
{
    return P12_bit.no2;
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveErrorCheck
  * 功  能：右灶故障检测
  * 参  数：无
  * 返回值：1：故障         0：正常
  * 说  明：高电平故障
*******************************************************************************/
Bool Hardware_RightStoveFXQCheck(void)
{
    return P13_bit.no7;
}

/*******************************************************************************
  * 函数名：Hardware_LeftStoveJogSwitchCheck
  * 功  能：左灶点动开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_LeftStoveJogSwitchCheck(void)
{
    return P1_bit.no5;
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveJogSwitchCheck
  * 功  能：中灶点动开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_MidStoveJogSwitchCheck(void)
{
    return P1_bit.no4;
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveJogSwitchCheck
  * 功  能：右灶点动开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_RightStoveJogSwitchCheck(void)
{
    return P1_bit.no3;
}

/*******************************************************************************
  * 函数名：Hardware_LeftStoveKnobCheck
  * 功  能：左灶旋钮开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_LeftStoveKnobCheck(void)
{
    return P1_bit.no0;
}

/*******************************************************************************
  * 函数名：Hardware_MidStoveKnobCheck
  * 功  能：中灶旋钮开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_MidStoveKnobCheck(void)
{
    return P14_bit.no6;
}

/*******************************************************************************
  * 函数名：Hardware_RightStoveKnobCheck
  * 功  能：右灶旋钮开关检测
  * 参  数：无
  * 返回值：1：抬起         0：闭合
  * 说  明：点动开关和旋钮开关同时闭合时，瞬燃点火
*******************************************************************************/
Bool Hardware_RightStoveKnobCheck(void)
{
    return P14_bit.no7;
}

/*******************************************************************************
  * 函数名：Hardware_StoveRangeHoodLink
  * 功  能：烟灶联动
  * 参  数：无
  * 返回值：0：开启         1：关闭
  * 说  明：任意旋钮开关闭合后启动烟灶联动。
*******************************************************************************/
void Hardware_StoveRangeHoodLink(Bool bState)
{
    if(bState)
    {
         P6_bit.no3 = 1;    
    }
    else
    {
         P6_bit.no3 = 0;
    }
}

/***************************** 文件结束 ***************************************/
